package controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.Livro;
import model.LivroUsuario;

/**
 * Servlet implementation class CadastroLivro
 */

public class CadastroLivro extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public CadastroLivro() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		RequestDispatcher rd =  request.getRequestDispatcher("/cadastrolivro.jsp");

		String erro = " ";
		String disableInputs = " ";

		String isbn = request.getParameter("isbn");
		String nome = "";
		String autor = "";
		int ano = 0000;
		String editora = ""; 
		String sinopse = "";
		int classificacao = 0;

		if((isbn != "") && (isbn != null)){
			Livro livro = new Livro(isbn);
			Livro livroAchado = livro.buscaLivro();
			if(livroAchado != null)
			{
				isbn =	livroAchado.getIsbn();
				nome = livroAchado.getNome();
				autor = livroAchado.getAutor();
				ano = livroAchado.getAno();
				editora = livroAchado.getEditora(); 
				sinopse = livroAchado.getSinopse();
				classificacao = livroAchado.getClassificacao();

				disableInputs = "readonly='readonly'";

			}else
			{
				erro = "Livro n�o encontrado. Verifica se preencheu o ISBN correto <br> "
						+ " Ou insira o novo livro - Livros cadastrados por usuarios dever�o esperar aprova��o do admin";
				request.setAttribute("isbn",isbn);

			}
		}else
		{	
			rd = request.getRequestDispatcher("/buscacadastrolivro.jsp");
			erro = "ISBN n�o pode ser vazio";
		}

		request.setAttribute("nome", nome);
		request.setAttribute("autor", autor);
		request.setAttribute("ano", ano);
		request.setAttribute("classificacao", classificacao); 
		request.setAttribute("editora", editora);
		request.setAttribute("isbn", isbn);
		request.setAttribute("sinopse", sinopse);

		request.setAttribute("erro", erro);
		request.setAttribute("disableInputs", disableInputs);

		rd.forward(request, response);


	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub

		RequestDispatcher rd ;

		String erro = " ";
		
		System.out.println(request.getParameterMap());

		if((request.getParameterMap().containsKey("isbn")) &&
				(request.getParameterMap().containsKey("nome")) &&
				(request.getParameterMap().containsKey("autor")) &&
				(request.getParameterMap().containsKey("ano")) &&
				(request.getParameterMap().containsKey("editora")) &&
				(request.getParameterMap().containsKey("sinopse")) &&
				(request.getParameterMap().containsKey("classificacao")) &&
				(request.getParameterMap().containsKey("estadoLivro"))){

			String isbn = request.getParameter("isbn");
			String nome = request.getParameter("nome");
			String autor = request.getParameter("autor");
			int ano = Integer.parseInt(request.getParameter("ano"));
			String editora = request.getParameter("editora"); 
			String sinopse = request.getParameter("sinopse");
			int classificacao = Integer.parseInt(request.getParameter("classificacao"));
			String estadoLivro = request.getParameter("estadoLivro");

			Livro livro = new Livro(isbn);
			//TODO: Pegar ID do usuario logado.
			LivroUsuario livroUsuario = new LivroUsuario(isbn, 1);

			Livro livroNoSistema;

			livroNoSistema = livro.adicionarLivroSistema(ano, autor, classificacao, editora, estadoLivro, nome, sinopse);

			if(livroNoSistema != null){
				livroUsuario.relacionarLivroUsuario(estadoLivro);
			}else{
				erro = "Ocorreu um erro ao cadastrar o livro, tente novamente mais tarde";
				rd =  request.getRequestDispatcher("/buscacadastrolivro.jsp");
				
				request.setAttribute("erro", erro);
				rd.forward(request, response);
			}
		}else{
			erro = "Preencha todos os campos";
			rd =  request.getRequestDispatcher("/buscacadastrolivro.jsp");
			
			request.setAttribute("erro", erro);
			rd.forward(request, response);
		}

		
		response.sendRedirect("./listalivro"); 
		
	

	}

}
